package com.flower.domain.dto.farmer;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 花卉百科DTO
 */
@Data
public class FlowerEncyclopediaDTO {
    
    /**
     * 百科ID（编辑时使用）
     */
    private Long id;
    
    /**
     * 花卉名称
     */
    private String name;
    
    /**
     * 学名
     */
    private String scientificName;
    
    /**
     * 别名
     */
    private String alias;
    
    /**
     * 科
     */
    private String family;
    
    /**
     * 属
     */
    private String genus;
    
    /**
     * 原产地
     */
    private String origin;
    
    /**
     * 介绍
     */
    private String introduction;
    
    /**
     * 特征
     */
    private String features;
    
    /**
     * 养护难度(1-5)
     */
    private Integer cultivationDifficulty;
    
    /**
     * 缩略图URL
     */
    private String thumbnail;
    
    /**
     * 生长环境
     */
    private EnvironmentDTO environment;
    
    /**
     * 生长阶段列表
     */
    private List<GrowthStageDTO> growthStages;
    
    /**
     * 栽培方法列表
     */
    private List<CultivationMethodDTO> cultivationMethods;
    
    /**
     * 图片列表
     */
    private List<ImageDTO> images;

    /**
     * 花的知识
     */
    private CurltureDTO curltures;

    @Data
    public static class EnvironmentDTO {
        /**
         * 最低温度(℃)
         */
        private BigDecimal temperatureMin;
        
        /**
         * 最高温度(℃)
         */
        private BigDecimal temperatureMax;
        
        /**
         * 光照需求
         */
        private String lightRequirement;
        
        /**
         * 浇水需求
         */
        private String waterRequirement;
        
        /**
         * 土壤类型
         */
        private String soilType;
        
        /**
         * 湿度要求
         */
        private String humidity;
        
        /**
         * 施肥要求
         */
        private String fertilization;
    }
    
    @Data
    public static class GrowthStageDTO {
        /**
         * ID（编辑时使用）
         */
        private Long id;
        
        /**
         * 阶段名称
         */
        private String stageName;
        
        /**
         * 阶段描述
         */
        private String stageDescription;
        
        /**
         * 持续时间
         */
        private String duration;
        
        /**
         * 护理要点
         */
        private String careTips;
        
        /**
         * 排序
         */
        private Integer sortOrder;

        /**
         * 阶段图片
         */
        private List<ImageDTO> images;
    }
    
    @Data
    public static class CultivationMethodDTO {
        /**
         * ID（编辑时使用）
         */
        private Long id;
        
        /**
         * 方法名称
         */
        private String methodName;
        
        /**
         * 方法内容
         */
        private String methodContent;
        
        /**
         * 适宜季节
         */
        private String suitableSeason;
        
        /**
         * 排序
         */
        private Integer sortOrder;
    }
    
    @Data
    public static class ImageDTO {
        /**
         * ID（编辑时使用）
         */
        private Long id;
        
        /**
         * 生长阶段ID
         */
        private Long growthStageId;
        
        /**
         * 图片URL
         */
        private String imageUrl;
        
        /**
         * 图片类型(1:全株,2:花朵,3:叶片,4:果实,5:其他)
         */
        private Integer imageType;
        
        /**
         * 图片描述
         */
        private String description;
        
        /**
         * 是否主图(0:否,1:是)
         */
        private Integer isMain;
        
        /**
         * 排序
         */
        private Integer sortOrder;
    }

    @Data
    public static class CurltureDTO {
        // 文化信息
        private String flowerLanguage;    // 花语
        private String poetry;            // 诗词典故
        private String culturalMeaning;   // 文化内涵
        private String literaryQuotations; // 文学典故
    }
} 